
/**
* <copyright>
*
* Copyright (c) 2009 Jin Mingjian and others.
* All rights reserved.   This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*   Jin Mingjian - Initial API and implementation
*  
* </copyright>
* 
**/

package com.google.code.exquery.parser;

public class XQueryParserprs implements lpg.runtime.ParseTable, XQueryParsersym {
    public final static int ERROR_SYMBOL = 150;
    public final int getErrorSymbol() { return ERROR_SYMBOL; }

    public final static int SCOPE_UBOUND = 37;
    public final int getScopeUbound() { return SCOPE_UBOUND; }

    public final static int SCOPE_SIZE = 38;
    public final int getScopeSize() { return SCOPE_SIZE; }

    public final static int MAX_NAME_LENGTH = 28;
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int NUM_STATES = 365;
    public final int getNumStates() { return NUM_STATES; }

    public final static int NT_OFFSET = 150;
    public final int getNtOffset() { return NT_OFFSET; }

    public final static int LA_STATE_OFFSET = 6360;
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }

    public final static int MAX_LA = 3;
    public final int getMaxLa() { return MAX_LA; }

    public final static int NUM_RULES = 360;
    public final int getNumRules() { return NUM_RULES; }

    public final static int NUM_NONTERMINALS = 157;
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }

    public final static int NUM_SYMBOLS = 307;
    public final int getNumSymbols() { return NUM_SYMBOLS; }

    public final static int SEGMENT_SIZE = 8192;
    public final int getSegmentSize() { return SEGMENT_SIZE; }

    public final static int START_STATE = 461;
    public final int getStartState() { return START_STATE; }

    public final static int IDENTIFIER_SYMBOL = 0;
    public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; }

    public final static int EOFT_SYMBOL = 92;
    public final int getEoftSymbol() { return EOFT_SYMBOL; }

    public final static int EOLT_SYMBOL = 92;
    public final int getEoltSymbol() { return EOLT_SYMBOL; }

    public final static int ACCEPT_ACTION = 5987;
    public final int getAcceptAction() { return ACCEPT_ACTION; }

    public final static int ERROR_ACTION = 6000;
    public final int getErrorAction() { return ERROR_ACTION; }

    public final static boolean BACKTRACK = true;
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int getStartSymbol() { return lhs(0); }
    public final boolean isValidForParser() { return XQueryParsersym.isValidForParser; }


    public interface IsNullable {
        public final static byte isNullable[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,1,0,
            0,1,0,0,1,0,0,1,1,0,
            0,0,0,0,0,0,1,1,0,0,
            1,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,1,0,0,1,0,1,1,0,
            1,0,1,0,0,0,1,0,1,0,
            1,1,0,1,0,0,1,1,0,0,
            0,0,0,1,1,0,0
        };
    };
    public final static byte isNullable[] = IsNullable.isNullable;
    public final boolean isNullable(int index) { return isNullable[index] != 0; }

    public interface ProsthesesIndex {
        public final static char prosthesesIndex[] = {0,
            2,150,152,112,149,151,153,154,155,156,
            157,108,113,114,126,128,129,101,102,103,
            104,106,107,109,110,111,115,117,118,119,
            120,121,122,123,124,125,127,140,141,142,
            143,144,145,100,99,91,93,94,95,96,
            98,85,86,87,88,89,92,84,83,82,
            81,80,79,54,55,56,78,37,45,46,
            47,48,49,57,44,61,41,147,35,36,
            42,34,66,73,105,116,136,8,19,43,
            60,63,65,74,76,146,3,4,5,6,
            7,9,10,11,12,13,14,15,16,17,
            18,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,38,39,40,50,51,
            52,53,58,59,62,64,67,68,69,70,
            71,72,75,77,90,97,130,131,132,133,
            134,135,137,138,139,148,1
        };
    };
    public final static char prosthesesIndex[] = ProsthesesIndex.prosthesesIndex;
    public final int prosthesesIndex(int index) { return prosthesesIndex[index]; }

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,2,2,0,5,0,2,2,2,6,
            2,2,2,2,2,2,2,0,2,1,
            1,1,1,1,1,1,1,1,1,5,
            3,3,5,5,4,3,3,5,5,5,
            1,1,1,1,4,3,0,1,1,3,
            0,2,5,3,3,4,7,0,1,7,
            6,3,3,0,1,0,2,8,8,1,
            3,3,3,1,1,3,1,1,1,1,
            1,0,1,0,1,1,1,1,2,5,
            0,1,6,1,3,2,3,5,1,3,
            2,2,3,4,1,3,2,1,1,0,
            1,2,2,0,1,0,2,3,5,1,
            3,4,4,1,2,8,10,0,3,5,
            8,1,3,1,3,1,3,3,3,3,
            3,3,3,3,3,3,3,3,3,3,
            3,1,3,1,3,3,1,3,3,3,
            3,1,3,3,1,3,3,1,4,1,
            4,1,4,1,4,1,2,1,1,1,
            2,1,1,1,4,5,1,1,1,2,
            3,4,3,4,1,2,2,1,1,3,
            3,1,1,2,2,2,1,2,2,2,
            2,2,2,2,1,2,2,1,2,2,
            2,2,2,1,1,1,1,1,1,3,
            3,2,0,2,3,1,1,1,1,1,
            1,1,1,1,1,1,1,1,2,1,
            2,3,1,4,4,3,4,1,1,1,
            1,1,4,8,0,2,3,0,2,1,
            1,1,1,1,1,0,2,0,2,3,
            3,1,1,1,1,1,1,1,1,1,
            3,4,1,1,1,1,1,1,4,4,
            5,6,7,1,4,5,6,7,4,4,
            4,5,6,7,1,2,2,3,1,2,
            1,1,1,1,1,3,1,1,1,1,
            1,1,1,1,1,3,3,4,4,3,
            3,3,4,4,3,4,4,6,6,4,
            3,4,4,6,6,7,7,4,1,3,
            -7,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,75,-8,-32,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,-121,-91,2,3,-13,1,-22,1,
            -1,-2,102,-214,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,70,71,72,73,74,75,86,
            104,105,106,107,108,109,110,111,112,113,
            114,115,116,117,118,119,120,97,98,96,
            -285,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,-23,1,-39,1,-40,
            1,-113,1,83,-114,1,-115,1,-82,-118,
            1,-173,1,93,-308,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,54,55,
            56,57,58,59,60,61,62,63,64,65,
            66,67,68,69,70,71,72,73,74,75,
            -45,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,-67,-68,-5,-234,101,
            96,-316,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,-4,79,80,84,
            84,-179,1,-6,83,88,89,-249,1,94,
            94,-268,1,-9,93,-18,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            75,-88,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,75,-90,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,57,58,59,60,61,62,
            63,64,65,66,67,68,69,70,71,72,
            73,74,75,-93,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,70,71,72,73,74,75,-94,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,57,58,59,60,
            61,62,63,64,65,66,67,68,69,70,
            71,72,73,74,75,-95,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            75,-107,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,75,-109,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,57,58,59,60,61,62,
            63,64,65,66,67,68,69,70,71,72,
            73,74,75,-111,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,70,71,72,73,74,75,-116,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,57,58,59,60,
            61,62,63,64,65,66,67,68,69,70,
            71,72,73,74,75,-119,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            75,-122,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,75,-159,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,57,58,59,60,61,62,
            63,64,65,66,67,68,69,70,71,72,
            73,74,75,-160,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,70,71,72,73,74,75,-191,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,57,58,59,60,
            61,62,63,64,65,66,67,68,69,70,
            71,72,73,74,75,-193,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            75,-204,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,75,-210,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,57,58,59,60,61,62,
            63,64,65,66,67,68,69,70,71,72,
            73,74,75,-302,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,70,71,72,73,74,75,-305,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,57,58,59,60,
            61,62,63,64,65,66,67,68,69,70,
            71,72,73,74,75,-326,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            75,-341,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,-269,1,-272,1,
            -273,1,-322,1,83,-169,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            -170,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,-232,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            -235,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,-283,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            -309,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,-312,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            -315,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,-338,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            -348,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,-353,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            -355,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,-363,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            -365,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,-157,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,-325,
            1,-10,67,-158,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,-142,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,57,58,59,60,61,62,
            -143,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,-144,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,-145,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,59,60,61,62,-146,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,57,58,59,60,
            61,62,-147,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,56,57,
            58,59,60,61,62,-148,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,-149,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,54,55,56,57,58,59,60,61,
            62,-150,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,-151,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,54,55,
            56,57,58,59,60,61,62,-152,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,57,58,59,60,61,62,
            -153,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,-154,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,-155,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,59,60,61,62,-156,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,57,58,59,60,
            61,62,-137,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,56,57,
            58,59,60,61,-135,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,54,55,
            56,57,58,59,60,-136,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,-138,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,59,-139,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,59,-140,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,59,-141,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,59,-131,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,-132,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,-133,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,54,55,
            56,57,-134,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,56,57,
            -55,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,-53,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,-54,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,-125,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,-126,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            -51,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,-186,1,2,3,4,
            5,6,7,8,9,10,11,-218,1,2,
            3,4,5,6,7,8,9,10,11,-219,
            1,2,3,4,5,6,7,8,9,10,
            11,-280,1,2,3,4,5,6,7,8,
            9,10,11,-336,1,2,3,4,5,6,
            7,8,9,10,11,-361,1,2,3,4,
            5,6,7,8,9,10,11,-3,-318,-291,
            -71,-300,77,78,-17,1,-351,-168,-69,-70,
            -172,-352,-187,1,77,78,15,16,17,-162,
            1,-197,1,-237,-278,-342,77,78,-165,1,
            -167,1,-239,-14,-292,-281,-15,-16,77,78,
            -337,1,-339,1,-346,-354,1,-24,-96,-177,
            77,78,-258,-264,-238,-25,-98,-233,-99,-287,
            -236,-293,77,78,64,65,66,-244,-301,-310,
            -288,-311,-327,-343,-328,-345,-358,-360,45,-11,
            76,-12,81,-347,-19,88,89,81,87,90,
            -20,-21,81,87,-26,76,99,100,87,91,
            103,92,79,80,76,-27,76,-28,-29,-30,
            -31,79,80,79,80,-33,76,-34,76,95,
            -35,76,85,79,80,126,127,-36,-37,129,
            130,-38,85,123,124,137,138,139,131,132,
            85,84,86,135,86,136,92,-41,-42,82,
            149,91,82,-43,-44,82,-46,145,81,153,
            -47,-48,-49,152,95,140,141,143,133,134,
            121,150,-50,90,-52,-56,-57,-58,-59,-60,
            -61,-62,146,122,125,-63,-64,-65,-66,-72,
            -73,-74,-75,-76,-77,147,-78,-79,-80,-81,
            -83,148,-84,128,-85,-86,-87,-89,156,-92,
            -97,-100,-101,-102,-103,144,-104,-105,142,151,
            -106,-108,-110,-112,-117,-120,-123,155,154,-124,
            -127,-128,-129,-130,-161,-163,-164,-166,-171,-174,
            -175,-176,-178,-180,-181,-182,-183,-184,-185,-188,
            -189,-190,-192,-194,-195,-196,-198,-199,-200,-201,
            -202,-203,-205,-206,-207,-208,-209,-211,-212,-213,
            -215,-216,-217,-220,-221,-222,-223,-224,-225,-226,
            -227,-228,-229,-230,-231,-240,-241,-242,-243,-245,
            -246,-247,-248,-250,-251,-252,-253,-254,-255,-256,
            -257,-259,-260,-261,-262,-263,-265,-266,-267,-270,
            -271,-274,-275,-276,-277,-279,-282,-284,-286,-289,
            -290,-294,-295,-296,-297,-298,-299,-303,-304,-306,
            -307,-313,-314,-317,-319,-320,-321,-323,-324,-329,
            -330,-331,-332,-333,-334,-335,-340,-344,-349,-350,
            -356,-357,-359,-362,-364,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            97,97,97,97,98,98,101,101,100,99,
            103,104,104,104,104,104,104,104,89,89,
            88,106,106,106,106,106,106,106,108,108,
            107,112,112,105,105,111,116,116,117,117,
            118,121,121,122,122,113,114,123,123,125,
            125,82,82,119,124,124,120,120,79,79,
            109,109,115,115,126,126,128,128,110,110,
            127,127,90,81,102,75,75,68,68,68,
            68,68,129,129,131,131,64,64,74,74,
            69,133,133,91,135,135,65,134,92,136,
            136,66,130,132,132,93,93,83,138,138,
            139,139,140,140,141,141,142,142,137,84,
            94,94,70,70,143,143,71,71,144,144,
            95,72,73,73,67,67,63,63,63,63,
            63,63,63,63,63,63,63,63,63,63,
            63,63,62,62,61,61,61,60,60,60,
            60,60,59,59,59,58,58,58,52,52,
            53,53,54,54,55,55,56,56,47,47,
            57,57,46,46,46,49,49,146,146,51,
            51,50,50,45,45,48,48,48,48,44,
            44,44,18,18,20,20,22,22,23,23,
            23,23,23,23,23,24,24,21,21,25,
            25,25,25,25,26,12,12,13,13,14,
            14,14,19,85,85,86,27,27,27,27,
            27,27,27,27,28,28,36,36,36,29,
            76,30,30,31,33,34,32,32,35,35,
            15,15,15,16,16,148,148,150,147,147,
            152,152,152,153,153,153,154,154,155,155,
            151,151,149,149,149,149,87,87,87,87,
            87,17,17,37,37,37,37,37,37,38,
            39,39,39,39,96,40,40,40,40,41,
            42,43,43,43,43,145,145,80,77,77,
            77,156,156,156,78,78,78,4,4,4,
            4,4,4,4,4,4,11,5,5,5,
            10,9,8,8,8,6,6,6,6,6,
            7,2,2,2,2,2,2,2,3,1,
            1,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,75,
            77,78,79,80,5816,5631,5820,2,718,227,
            328,330,225,327,329,331,332,333,334,335,
            216,226,228,693,1069,5902,5901,117,5836,117,
            5679,750,685,8,276,5779,328,330,225,327,
            329,331,332,333,334,335,215,226,228,258,
            260,262,199,202,203,5686,5678,731,207,5541,
            218,5668,236,237,238,239,240,241,242,243,
            244,259,293,294,295,296,297,298,5805,189,
            176,180,182,183,184,5664,165,5807,5710,5806,
            5712,5311,5809,5808,5811,5810,5812,134,88,86,
            87,5817,75,77,78,79,80,5816,5631,5944,
            234,19,5828,5827,5825,5824,5823,5822,5821,21,
            22,23,24,25,26,27,28,29,462,5628,
            5943,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,5629,
            77,78,79,80,5816,5631,117,5841,770,5855,
            804,5856,117,5893,105,117,5894,849,5896,985,
            850,5899,117,5923,5964,441,5779,328,330,225,
            327,329,331,332,333,334,335,215,226,228,
            258,260,262,199,202,203,5686,5678,731,207,
            5541,218,5668,236,237,238,239,240,241,242,
            243,244,259,293,294,295,296,297,298,5805,
            189,176,180,182,183,184,5664,165,5807,5710,
            5806,5712,5311,5809,5808,5811,5810,5812,134,88,
            86,87,5817,75,77,78,79,80,5816,5631,
            5944,718,227,328,330,225,327,329,331,332,
            333,334,335,206,226,228,387,387,64,1155,
            5877,5974,496,5779,328,330,225,327,329,331,
            332,333,334,335,215,226,228,258,260,262,
            199,202,203,5686,5678,731,207,5541,218,5668,
            236,237,238,239,240,241,242,243,244,259,
            293,294,295,296,297,298,5805,189,176,180,
            182,183,184,5664,165,5807,5710,5806,5712,5311,
            5809,5808,5811,5810,5812,134,88,86,87,5817,
            5629,77,78,79,80,5816,5631,555,5946,59,
            120,120,117,5925,552,105,9,437,117,5665,
            5865,5866,117,5958,497,5977,1,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,75,77,78,79,80,5816,
            5631,5840,56,5779,328,330,225,327,329,331,
            332,333,334,335,215,226,228,258,260,262,
            199,202,203,5686,5678,731,207,5541,218,5668,
            236,237,238,239,240,241,242,243,244,259,
            293,294,295,296,297,298,5805,189,176,180,
            182,183,184,5664,165,5807,5710,5806,5712,5311,
            5809,5808,5811,5810,5812,134,88,86,87,5817,
            75,77,78,79,80,5816,5631,5882,496,5779,
            328,330,225,327,329,331,332,333,334,335,
            215,226,228,258,260,262,199,202,203,5686,
            5678,731,207,5541,218,5668,236,237,238,239,
            240,241,242,243,244,259,293,294,295,296,
            297,298,5805,189,176,180,182,183,184,5664,
            165,5807,5710,5806,5712,5311,5809,5808,5811,5810,
            5812,134,88,86,87,5817,75,77,78,79,
            80,5816,5631,5883,496,5779,328,330,225,327,
            329,331,332,333,334,335,215,226,228,258,
            260,262,199,202,203,5686,5678,731,207,5541,
            218,5668,236,237,238,239,240,241,242,243,
            244,259,293,294,295,296,297,298,5805,189,
            176,180,182,183,184,5664,165,5807,5710,5806,
            5712,5311,5809,5808,5811,5810,5812,134,88,86,
            87,5817,75,77,78,79,80,5816,5631,5884,
            496,5779,328,330,225,327,329,331,332,333,
            334,335,215,226,228,258,260,262,199,202,
            203,5686,5678,731,207,5541,218,5668,236,237,
            238,239,240,241,242,243,244,259,293,294,
            295,296,297,298,5805,189,176,180,182,183,
            184,5664,165,5807,5710,5806,5712,5311,5809,5808,
            5811,5810,5812,134,88,86,87,5817,75,77,
            78,79,80,5816,5631,5885,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,75,77,78,79,80,5816,
            5631,5886,496,5779,328,330,225,327,329,331,
            332,333,334,335,215,226,228,258,260,262,
            199,202,203,5686,5678,731,207,5541,218,5668,
            236,237,238,239,240,241,242,243,244,259,
            293,294,295,296,297,298,5805,189,176,180,
            182,183,184,5664,165,5807,5710,5806,5712,5311,
            5809,5808,5811,5810,5812,134,88,86,87,5817,
            75,77,78,79,80,5816,5631,5888,496,5779,
            328,330,225,327,329,331,332,333,334,335,
            215,226,228,258,260,262,199,202,203,5686,
            5678,731,207,5541,218,5668,236,237,238,239,
            240,241,242,243,244,259,293,294,295,296,
            297,298,5805,189,176,180,182,183,184,5664,
            165,5807,5710,5806,5712,5311,5809,5808,5811,5810,
            5812,134,88,86,87,5817,75,77,78,79,
            80,5816,5631,5889,496,5779,328,330,225,327,
            329,331,332,333,334,335,215,226,228,258,
            260,262,199,202,203,5686,5678,731,207,5541,
            218,5668,236,237,238,239,240,241,242,243,
            244,259,293,294,295,296,297,298,5805,189,
            176,180,182,183,184,5664,165,5807,5710,5806,
            5712,5311,5809,5808,5811,5810,5812,134,88,86,
            87,5817,75,77,78,79,80,5816,5631,5892,
            496,5779,328,330,225,327,329,331,332,333,
            334,335,215,226,228,258,260,262,199,202,
            203,5686,5678,731,207,5541,218,5668,236,237,
            238,239,240,241,242,243,244,259,293,294,
            295,296,297,298,5805,189,176,180,182,183,
            184,5664,165,5807,5710,5806,5712,5311,5809,5808,
            5811,5810,5812,134,88,86,87,5817,75,77,
            78,79,80,5816,5631,5897,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,75,77,78,79,80,5816,
            5631,5900,111,5779,328,330,225,327,329,331,
            332,333,334,335,215,226,228,258,260,262,
            199,202,203,5686,5678,731,207,5541,218,5668,
            236,237,238,239,240,241,242,243,244,259,
            293,294,295,296,297,298,5805,189,176,180,
            182,183,184,5664,165,5807,5710,5806,5712,5311,
            5809,5808,5811,5810,5812,134,88,86,87,5817,
            75,77,78,79,80,5816,5631,5903,496,5779,
            328,330,225,327,329,331,332,333,334,335,
            215,226,228,258,260,262,199,202,203,5686,
            5678,731,207,5541,218,5668,236,237,238,239,
            240,241,242,243,244,259,293,294,295,296,
            297,298,5805,189,176,180,182,183,184,5664,
            165,5807,5710,5806,5712,5311,5809,5808,5811,5810,
            5812,134,88,86,87,5817,75,77,78,79,
            80,5816,5631,5914,496,5779,328,330,225,327,
            329,331,332,333,334,335,215,226,228,258,
            260,262,199,202,203,5686,5678,731,207,5541,
            218,5668,236,237,238,239,240,241,242,243,
            244,259,293,294,295,296,297,298,5805,189,
            176,180,182,183,184,5664,165,5807,5710,5806,
            5712,5311,5809,5808,5811,5810,5812,134,88,86,
            87,5817,75,77,78,79,80,5816,5631,5915,
            496,5779,328,330,225,327,329,331,332,333,
            334,335,215,226,228,258,260,262,199,202,
            203,5686,5678,731,207,5541,218,5668,236,237,
            238,239,240,241,242,243,244,259,293,294,
            295,296,297,298,5805,189,176,180,182,183,
            184,5664,165,5807,5710,5806,5712,5311,5809,5808,
            5811,5810,5812,134,88,86,87,5817,75,77,
            78,79,80,5816,5631,5935,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,75,77,78,79,80,5816,
            5631,5936,166,5779,328,330,225,327,329,331,
            332,333,334,335,215,226,228,258,260,262,
            199,202,203,5686,5678,731,207,5541,218,5668,
            236,237,238,239,240,241,242,243,244,259,
            293,294,295,296,297,298,5805,189,176,180,
            182,183,184,5664,165,5807,5710,5806,5712,5311,
            5809,5808,5811,5810,5812,134,88,86,87,5817,
            75,77,78,79,80,5816,5631,5939,221,5779,
            328,330,225,327,329,331,332,333,334,335,
            215,226,228,258,260,262,199,202,203,5686,
            5678,731,207,5541,218,5668,236,237,238,239,
            240,241,242,243,244,259,293,294,295,296,
            297,298,5805,189,176,180,182,183,184,5664,
            165,5807,5710,5806,5712,5311,5809,5808,5811,5810,
            5812,134,88,86,87,5817,75,77,78,79,
            80,5816,5631,5941,331,5779,328,330,225,327,
            329,331,332,333,334,335,215,226,228,258,
            260,262,199,202,203,5686,5678,731,207,5541,
            218,5668,236,237,238,239,240,241,242,243,
            244,259,293,294,295,296,297,298,5805,189,
            176,180,182,183,184,5664,165,5807,5710,5806,
            5712,5311,5809,5808,5811,5810,5812,134,88,86,
            87,5817,75,77,78,79,80,5816,5631,5970,
            386,5779,328,330,225,327,329,331,332,333,
            334,335,215,226,228,258,260,262,199,202,
            203,5686,5678,731,207,5541,218,5668,236,237,
            238,239,240,241,242,243,244,259,293,294,
            295,296,297,298,5805,189,176,180,182,183,
            184,5664,165,5807,5710,5806,5712,5311,5809,5808,
            5811,5810,5812,134,88,86,87,5817,75,77,
            78,79,80,5816,5631,5971,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,75,77,78,79,80,5816,
            5631,5980,496,5779,328,330,225,327,329,331,
            332,333,334,335,215,226,228,258,260,262,
            199,202,203,5686,5678,731,207,5541,218,5668,
            236,237,238,239,240,241,242,243,244,259,
            293,294,295,296,297,298,5805,189,176,180,
            182,183,184,5664,165,5807,5710,5806,5712,5311,
            5809,5808,5811,5810,5812,134,88,86,87,5817,
            5629,77,78,79,80,5816,5631,117,5959,117,
            5960,117,5961,117,5675,106,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,102,77,78,79,80,5816,
            5631,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,76,
            77,78,79,80,5816,5631,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,123,77,78,79,80,5816,
            5631,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,122,
            77,78,79,80,5816,5631,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,90,77,78,79,80,5816,
            5631,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,5975,
            77,78,79,80,5816,5631,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,119,77,78,79,80,5816,
            5631,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,98,
            77,78,79,80,5816,5631,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,93,77,78,79,80,5816,
            5631,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,60,
            77,78,79,80,5816,5631,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,131,77,78,79,80,5816,
            5631,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,126,
            77,78,79,80,5816,5631,496,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            88,86,87,5817,130,77,78,79,80,5816,
            5631,496,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,5812,134,88,86,87,5817,127,
            77,78,79,80,5816,5631,551,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,5812,134,
            117,5979,7,5913,551,5779,328,330,225,327,
            329,331,332,333,334,335,215,226,228,258,
            260,262,199,202,203,5686,5678,731,207,5541,
            218,5668,236,237,238,239,240,241,242,243,
            244,259,293,294,295,296,297,298,5805,189,
            176,180,182,183,184,5664,165,5807,5710,5806,
            5712,5311,5809,5808,5811,5810,5812,135,551,5779,
            328,330,225,327,329,331,332,333,334,335,
            215,226,228,258,260,262,199,202,203,5686,
            5678,731,207,5541,218,5668,236,237,238,239,
            240,241,242,243,244,259,293,294,295,296,
            297,298,5805,189,176,180,182,183,184,5664,
            165,5807,5710,5806,5712,5311,5809,5808,5811,5810,
            151,551,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,150,551,5779,328,330,225,327,
            329,331,332,333,334,335,215,226,228,258,
            260,262,199,202,203,5686,5678,731,207,5541,
            218,5668,236,237,238,239,240,241,242,243,
            244,259,293,294,295,296,297,298,5805,189,
            176,180,182,183,184,5664,165,5807,5710,5806,
            5712,5311,5809,5808,5811,5810,149,551,5779,328,
            330,225,327,329,331,332,333,334,335,215,
            226,228,258,260,262,199,202,203,5686,5678,
            731,207,5541,218,5668,236,237,238,239,240,
            241,242,243,244,259,293,294,295,296,297,
            298,5805,189,176,180,182,183,184,5664,165,
            5807,5710,5806,5712,5311,5809,5808,5811,5810,148,
            551,5779,328,330,225,327,329,331,332,333,
            334,335,215,226,228,258,260,262,199,202,
            203,5686,5678,731,207,5541,218,5668,236,237,
            238,239,240,241,242,243,244,259,293,294,
            295,296,297,298,5805,189,176,180,182,183,
            184,5664,165,5807,5710,5806,5712,5311,5809,5808,
            5811,5810,147,551,5779,328,330,225,327,329,
            331,332,333,334,335,215,226,228,258,260,
            262,199,202,203,5686,5678,731,207,5541,218,
            5668,236,237,238,239,240,241,242,243,244,
            259,293,294,295,296,297,298,5805,189,176,
            180,182,183,184,5664,165,5807,5710,5806,5712,
            5311,5809,5808,5811,5810,146,551,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5811,5810,145,551,
            5779,328,330,225,327,329,331,332,333,334,
            335,215,226,228,258,260,262,199,202,203,
            5686,5678,731,207,5541,218,5668,236,237,238,
            239,240,241,242,243,244,259,293,294,295,
            296,297,298,5805,189,176,180,182,183,184,
            5664,165,5807,5710,5806,5712,5311,5809,5808,5811,
            5810,144,551,5779,328,330,225,327,329,331,
            332,333,334,335,215,226,228,258,260,262,
            199,202,203,5686,5678,731,207,5541,218,5668,
            236,237,238,239,240,241,242,243,244,259,
            293,294,295,296,297,298,5805,189,176,180,
            182,183,184,5664,165,5807,5710,5806,5712,5311,
            5809,5808,5811,5810,143,551,5779,328,330,225,
            327,329,331,332,333,334,335,215,226,228,
            258,260,262,199,202,203,5686,5678,731,207,
            5541,218,5668,236,237,238,239,240,241,242,
            243,244,259,293,294,295,296,297,298,5805,
            189,176,180,182,183,184,5664,165,5807,5710,
            5806,5712,5311,5809,5808,5811,5810,142,551,5779,
            328,330,225,327,329,331,332,333,334,335,
            215,226,228,258,260,262,199,202,203,5686,
            5678,731,207,5541,218,5668,236,237,238,239,
            240,241,242,243,244,259,293,294,295,296,
            297,298,5805,189,176,180,182,183,184,5664,
            165,5807,5710,5806,5712,5311,5809,5808,5811,5810,
            141,551,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,176,180,182,
            183,184,5664,165,5807,5710,5806,5712,5311,5809,
            5808,5811,5810,140,551,5779,328,330,225,327,
            329,331,332,333,334,335,215,226,228,258,
            260,262,199,202,203,5686,5678,731,207,5541,
            218,5668,236,237,238,239,240,241,242,243,
            244,259,293,294,295,296,297,298,5805,189,
            176,180,182,183,184,5664,165,5807,5710,5806,
            5712,5311,5809,5808,5811,5810,139,551,5779,328,
            330,225,327,329,331,332,333,334,335,215,
            226,228,258,260,262,199,202,203,5686,5678,
            731,207,5541,218,5668,236,237,238,239,240,
            241,242,243,244,259,293,294,295,296,297,
            298,5805,189,176,180,182,183,184,5664,165,
            5807,5710,5806,5712,5311,5809,5808,5811,5810,138,
            551,5779,328,330,225,327,329,331,332,333,
            334,335,215,226,228,258,260,262,199,202,
            203,5686,5678,731,207,5541,218,5668,236,237,
            238,239,240,241,242,243,244,259,293,294,
            295,296,297,298,5805,189,176,180,182,183,
            184,5664,165,5807,5710,5806,5712,5311,5809,5808,
            5811,5810,137,551,5779,328,330,225,327,329,
            331,332,333,334,335,215,226,228,258,260,
            262,199,202,203,5686,5678,731,207,5541,218,
            5668,236,237,238,239,240,241,242,243,244,
            259,293,294,295,296,297,298,5805,189,176,
            180,182,183,184,5664,165,5807,5710,5806,5712,
            5311,5809,5808,5811,5908,551,5779,328,330,225,
            327,329,331,332,333,334,335,215,226,228,
            258,260,262,199,202,203,5686,5678,731,207,
            5541,218,5668,236,237,238,239,240,241,242,
            243,244,259,293,294,295,296,297,298,5805,
            189,176,180,182,183,184,5664,165,5807,5710,
            5806,5712,5311,5809,5808,5906,551,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5809,5808,5907,551,5779,328,
            330,225,327,329,331,332,333,334,335,215,
            226,228,258,260,262,199,202,203,5686,5678,
            731,207,5541,218,5668,236,237,238,239,240,
            241,242,243,244,259,293,294,295,296,297,
            298,5805,189,176,180,182,183,184,5664,165,
            5807,5710,5806,5712,5311,5809,5909,551,5779,328,
            330,225,327,329,331,332,333,334,335,215,
            226,228,258,260,262,199,202,203,5686,5678,
            731,207,5541,218,5668,236,237,238,239,240,
            241,242,243,244,259,293,294,295,296,297,
            298,5805,189,176,180,182,183,184,5664,165,
            5807,5710,5806,5712,5311,5809,5910,551,5779,328,
            330,225,327,329,331,332,333,334,335,215,
            226,228,258,260,262,199,202,203,5686,5678,
            731,207,5541,218,5668,236,237,238,239,240,
            241,242,243,244,259,293,294,295,296,297,
            298,5805,189,176,180,182,183,184,5664,165,
            5807,5710,5806,5712,5311,5809,5911,551,5779,328,
            330,225,327,329,331,332,333,334,335,215,
            226,228,258,260,262,199,202,203,5686,5678,
            731,207,5541,218,5668,236,237,238,239,240,
            241,242,243,244,259,293,294,295,296,297,
            298,5805,189,176,180,182,183,184,5664,165,
            5807,5710,5806,5712,5311,5809,5912,551,5779,328,
            330,225,327,329,331,332,333,334,335,215,
            226,228,258,260,262,199,202,203,5686,5678,
            731,207,5541,218,5668,236,237,238,239,240,
            241,242,243,244,259,293,294,295,296,297,
            298,5805,189,176,180,182,183,184,5664,165,
            5807,5710,5806,5712,5311,5904,551,5779,328,330,
            225,327,329,331,332,333,334,335,215,226,
            228,258,260,262,199,202,203,5686,5678,731,
            207,5541,218,5668,236,237,238,239,240,241,
            242,243,244,259,293,294,295,296,297,298,
            5805,189,176,180,182,183,184,5664,165,5807,
            5710,5806,5712,5311,5905,551,5779,328,330,225,
            327,329,331,332,333,334,335,215,226,228,
            258,260,262,199,202,203,5686,5678,731,207,
            5541,218,5668,236,237,238,239,240,241,242,
            243,244,259,293,294,295,296,297,298,5805,
            189,176,180,182,183,184,5664,167,5807,5710,
            5806,5712,5311,551,5779,328,330,225,327,329,
            331,332,333,334,335,215,226,228,258,260,
            262,199,202,203,5686,5678,731,207,5541,218,
            5668,236,237,238,239,240,241,242,243,244,
            259,293,294,295,296,297,298,5805,189,176,
            180,182,183,184,5664,166,5807,5710,5806,5712,
            5311,551,5779,328,330,225,327,329,331,332,
            333,334,335,215,226,228,258,260,262,199,
            202,203,5686,5678,731,207,5541,218,5668,236,
            237,238,239,240,241,242,243,244,259,293,
            294,295,296,297,298,5805,189,177,181,182,
            183,184,5664,600,5779,328,330,225,327,329,
            331,332,333,334,335,215,226,228,258,260,
            262,199,202,203,5686,5678,731,207,5541,218,
            5668,236,237,238,239,240,241,242,243,244,
            259,293,294,295,296,297,298,5861,646,5779,
            328,330,225,327,329,331,332,333,334,335,
            215,226,228,258,260,262,199,202,203,5686,
            5678,731,207,5541,218,5668,236,237,238,239,
            240,241,242,243,244,259,293,294,295,296,
            297,298,5862,600,5779,328,330,225,327,329,
            331,332,333,334,335,215,226,228,258,260,
            262,201,202,203,5686,5678,731,207,5541,218,
            5668,236,237,238,239,240,241,242,243,244,
            259,293,294,295,296,297,298,600,5779,328,
            330,225,327,329,331,332,333,334,335,215,
            226,228,258,260,262,200,202,203,5686,5678,
            731,207,5541,218,5668,236,237,238,239,240,
            241,242,243,244,259,293,294,295,296,297,
            298,718,227,328,330,225,327,329,331,332,
            333,334,335,217,226,228,699,325,328,330,
            324,327,329,331,332,333,334,335,699,325,
            328,330,324,327,329,331,332,333,334,335,
            699,325,328,330,324,327,329,331,332,333,
            334,335,699,325,328,330,324,327,329,331,
            332,333,334,335,699,325,328,330,324,327,
            329,331,332,333,334,335,699,325,328,330,
            324,327,329,331,332,333,334,335,816,919,
            1209,753,737,171,5683,117,250,692,606,1049,
            1053,847,747,117,5934,173,5683,282,260,262,
            117,250,757,5937,1155,1195,1240,169,5683,117,
            250,117,250,1155,825,1155,1202,738,339,317,
            5683,117,250,117,250,1155,117,250,339,788,
            880,5981,5683,822,819,1053,339,1070,387,1071,
            1206,1049,909,67,5683,89,86,87,1162,917,
            961,1162,1234,1279,1162,1280,1246,1275,982,190,
            500,249,48,290,1271,1030,361,437,290,285,
            70,1033,1034,290,275,724,749,2,3,272,
            94,748,99,5666,59,5654,902,5663,1008,1027,
            1029,1039,5947,59,5969,59,57,5982,869,97,
            124,870,5984,454,72,59,5967,5968,797,167,
            5638,83,222,5687,5920,48,107,111,5656,5916,
            85,5689,121,234,5867,234,5868,100,277,332,
            56,266,95,53,158,213,57,1040,175,68,
            279,1043,1044,1045,277,125,115,5707,5700,5962,
            92,5924,269,1046,71,599,543,268,647,808,
            776,758,650,5838,40,5966,969,795,442,1047,
            774,323,433,449,1048,1054,5652,1059,1061,809,
            639,1063,5632,1065,5708,1066,557,1064,1067,320,
            722,879,1078,1080,1094,1095,5604,1096,1084,118,
            267,1100,1101,841,1107,1111,1112,696,5637,5642,
            1106,837,868,1072,1073,829,888,1117,1124,890,
            876,1126,1127,740,754,883,1128,1082,1131,1134,
            1102,1138,898,905,907,915,922,1113,924,926,
            1144,1145,933,1146,1147,936,943,950,953,959,
            964,1152,1153,967,912,914,787,794,952,929,
            935,938,942,1154,983,992,1158,1159,1160,1161,
            1164,1165,1166,1167,1171,1173,1174,1176,1177,1180,
            1181,1182,1183,1184,1188,999,972,1185,1190,1003,
            1191,1006,1192,598,1193,1189,1201,1203,1204,1205,
            1208,1207,931,1213,1215,1217,1221,1224,1226,1227,
            896,1015,1214,1235,1251,1244,1253,1255,1260,966,
            1020,1022,1258,1266,1232,1229,1018,1267,1269,1256,
            1031,1272,1273,975,1276,1277,6000,0,459,195,
            0,5785,195,0,319,6323,0,319,6322,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static char termCheck[] = {0,
            0,0,2,3,4,5,0,7,2,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,0,48,49,
            50,51,52,53,54,0,0,2,3,3,
            5,6,7,0,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,101,48,49,50,51,52,53,54,
            0,110,2,3,4,5,0,7,2,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,0,48,49,
            50,51,52,53,54,0,0,2,3,3,
            5,6,7,126,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,0,48,49,50,51,52,53,54,
            0,0,2,3,3,5,6,7,71,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,0,48,49,
            50,51,52,53,54,0,0,2,3,3,
            5,6,7,71,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,0,48,49,50,51,52,53,54,
            0,0,2,3,3,5,6,7,0,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,55,48,49,
            50,51,52,53,54,0,0,2,3,122,
            5,6,7,7,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,0,48,49,50,51,52,53,54,
            0,0,2,3,3,5,6,7,0,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,55,48,49,
            50,51,52,53,54,0,0,2,3,0,
            5,5,7,55,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,0,48,49,50,51,52,53,54,
            0,0,2,3,0,5,0,7,2,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,0,0,0,
            50,2,3,6,5,0,7,56,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,23,24,124,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,0,40,
            41,42,43,44,45,0,0,2,3,0,
            5,95,7,99,9,10,11,12,13,14,
            15,16,17,18,19,20,21,125,19,64,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,0,40,41,42,43,44,
            45,0,0,2,56,0,4,2,0,8,
            2,63,10,11,9,59,60,58,10,11,
            12,13,14,15,16,17,18,0,80,2,
            115,0,1,0,75,4,9,10,11,12,
            13,14,15,16,17,18,0,0,2,0,
            102,103,104,105,8,8,0,109,2,0,
            112,113,0,0,8,19,0,0,2,20,
            21,25,26,10,73,74,9,76,77,0,
            47,2,3,0,1,0,92,8,129,130,
            131,132,133,134,135,94,0,0,139,140,
            141,142,143,0,0,9,0,22,2,3,
            48,49,9,0,8,2,3,0,0,73,
            74,8,76,77,39,0,47,64,0,73,
            74,0,76,77,0,68,69,70,0,1,
            9,75,8,80,136,137,0,84,147,93,
            0,92,2,22,4,5,0,98,0,0,
            2,2,4,4,68,69,70,9,9,23,
            24,68,69,70,127,128,114,0,0,0,
            46,3,3,66,67,0,8,8,0,0,
            2,145,0,62,148,91,78,0,1,0,
            23,24,146,78,5,0,121,0,1,4,
            144,0,56,6,0,1,0,1,0,63,
            6,0,6,0,0,1,0,89,0,111,
            6,0,1,0,1,0,1,6,0,6,
            0,6,0,1,0,0,1,0,6,4,
            65,0,0,1,65,56,4,65,47,0,
            1,0,0,1,79,6,4,62,0,1,
            0,79,4,0,1,0,0,1,0,6,
            4,0,1,22,0,97,89,66,67,66,
            67,0,0,1,0,106,4,59,60,8,
            39,0,1,59,60,4,59,60,0,1,
            59,60,0,1,6,0,1,0,6,93,
            94,6,82,83,0,107,108,0,4,0,
            1,0,1,63,7,6,0,6,0,0,
            0,1,0,0,116,117,6,8,0,0,
            8,8,0,0,0,0,0,0,0,3,
            90,86,0,0,47,7,82,83,0,7,
            0,96,0,0,0,0,0,86,0,0,
            0,0,0,47,8,47,62,0,61,0,
            3,0,3,0,100,47,47,4,120,47,
            47,47,47,0,0,0,3,3,3,0,
            0,0,55,4,4,0,0,2,55,138,
            0,0,0,55,8,55,0,1,8,8,
            58,57,57,0,1,0,0,0,57,2,
            0,5,7,0,71,5,55,0,5,2,
            72,72,72,0,0,0,0,4,4,4,
            4,0,0,0,0,4,4,0,0,0,
            0,0,2,0,0,0,0,2,5,3,
            0,1,0,0,10,0,0,5,5,0,
            0,0,0,0,0,3,3,0,0,0,
            0,0,0,1,0,123,95,8,8,8,
            0,0,0,0,0,0,0,0,0,97,
            5,57,0,0,0,7,0,5,61,5,
            0,5,64,0,4,0,0,4,0,4,
            4,0,56,0,0,56,55,6,58,0,
            7,7,58,0,91,0,85,88,5,62,
            0,1,0,1,0,0,81,0,4,0,
            1,4,58,56,58,0,0,1,0,4,
            0,0,0,5,0,0,0,7,0,0,
            0,5,0,0,90,0,85,87,0,0,
            0,88,0,0,0,0,0,0,96,0,
            87,0,57,0,0,0,118,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            81,0,0,0,0,0,0,0,0,57,
            75,0,61,0,0,0,61,0,0,0,
            0,0,0,0,0,0,0,119,0,0,
            0,0,0,0,0,0,0,0,84,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0
        };
    };
    public final static char termCheck[] = TermCheck.termCheck;
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            6000,20,5784,846,6251,6245,6000,5635,5831,5785,
            640,5762,638,5751,5778,5746,5758,5759,5748,459,
            5715,5721,6178,5408,5363,636,6261,5741,5740,5739,
            5738,5736,5725,5803,5793,5792,5791,5787,5722,6179,
            438,6253,6224,6246,6247,6248,457,174,5639,5640,
            5667,747,746,5818,5819,6000,6000,5784,846,5848,
            6245,6191,5635,18,5785,640,5762,638,5751,5778,
            5746,5758,5759,5748,459,5715,5721,6178,5408,5363,
            636,6261,5741,5740,5739,5738,5736,5725,5803,5793,
            5792,5791,5787,5722,6179,438,6253,6224,6246,6247,
            6248,457,5830,5639,5640,5667,747,746,5818,5819,
            6000,5829,5784,846,6256,6245,6000,5635,5837,5785,
            640,5762,638,5751,5778,5746,5758,5759,5748,459,
            5715,5721,6178,5408,5363,636,6261,5741,5740,5739,
            5738,5736,5725,5803,5793,5792,5791,5787,5722,6179,
            438,6253,6224,6246,6247,6248,457,359,5639,5640,
            5667,747,746,5818,5819,6000,6000,5784,846,642,
            6245,6311,5635,5835,5785,640,5762,638,5751,5778,
            5746,5758,5759,5748,459,5715,5721,6178,5408,5363,
            636,6261,5741,5740,5739,5738,5736,5725,5803,5793,
            5792,5791,5787,5722,6179,438,6253,6224,6246,6247,
            6248,457,229,5639,5640,5667,747,746,5818,5819,
            6000,6000,5784,846,645,6245,6305,5635,5857,5785,
            640,5762,638,5751,5778,5746,5758,5759,5748,459,
            5715,5721,6178,5408,5363,636,6261,5741,5740,5739,
            5738,5736,5725,5803,5793,5792,5791,5787,5722,6179,
            438,6253,6224,6246,6247,6248,457,168,5639,5640,
            5667,747,746,5818,5819,6000,6000,5784,846,453,
            6245,6300,5635,5860,5785,640,5762,638,5751,5778,
            5746,5758,5759,5748,459,5715,5721,6178,5408,5363,
            636,6261,5741,5740,5739,5738,5736,5725,5803,5793,
            5792,5791,5787,5722,6179,438,6253,6224,6246,6247,
            6248,457,6000,5639,5640,5667,747,746,5818,5819,
            6000,227,5784,846,1682,6245,6313,5635,233,5785,
            640,5762,638,5751,5778,5746,5758,5759,5748,459,
            5715,5721,6178,5408,5363,636,6261,5741,5740,5739,
            5738,5736,5725,5803,5793,5792,5791,5787,5722,6179,
            438,6253,6224,6246,6247,6248,457,6017,5639,5640,
            5667,747,746,5818,5819,6000,6000,5784,846,5864,
            6245,6307,5635,5650,5785,640,5762,638,5751,5778,
            5746,5758,5759,5748,459,5715,5721,6178,5408,5363,
            636,6261,5741,5740,5739,5738,5736,5725,5803,5793,
            5792,5791,5787,5722,6179,438,6253,6224,6246,6247,
            6248,457,6000,5639,5640,5667,747,746,5818,5819,
            6000,6000,5784,846,1758,6245,6302,5635,6000,5785,
            640,5762,638,5751,5778,5746,5758,5759,5748,459,
            5715,5721,6178,5408,5363,636,6261,5741,5740,5739,
            5738,5736,5725,5803,5793,5792,5791,5787,5722,6179,
            438,6253,6224,6246,6247,6248,457,6016,5639,5640,
            5667,747,746,5818,5819,6000,6000,5784,846,170,
            6245,649,5635,6015,5785,640,5762,638,5751,5778,
            5746,5758,5759,5748,459,5715,5721,6178,5408,5363,
            636,6261,5741,5740,5739,5738,5736,5725,5803,5793,
            5792,5791,5787,5722,6179,438,6253,6224,6246,6247,
            6248,457,172,5639,5640,5667,747,746,5818,5819,
            6000,6000,5784,846,6000,6245,6000,5635,5880,5785,
            640,5762,638,5751,5778,5746,5758,5759,5748,459,
            5715,5721,6178,5408,5363,636,6261,5741,5740,5739,
            5738,5736,5725,5803,5793,5792,5791,5787,5722,6179,
            438,6253,6224,6246,6247,6248,457,6000,198,6000,
            5667,5784,846,6301,6245,84,5635,3642,5785,640,
            5762,638,5751,5778,5746,5758,5759,5748,459,5715,
            5721,5497,5453,5833,636,6261,5741,5740,5739,5738,
            5736,5725,5803,5793,5792,5791,5787,5722,6000,438,
            6253,6224,6246,6247,6248,195,157,5784,846,136,
            6245,6193,5635,844,5991,640,5762,638,5751,5778,
            5746,5758,5759,5748,5988,5715,5721,5863,4464,5918,
            636,6261,5741,5740,5739,5738,5736,5725,5803,5793,
            5792,5791,5787,5722,6000,438,6253,6224,6246,6247,
            6248,6000,6000,6274,5876,6000,6337,6360,6000,2366,
            5837,5874,5842,5762,6230,5136,5077,4590,5842,5762,
            5843,5845,5778,5746,5844,5759,5847,6000,652,5784,
            5917,6000,2601,6000,4338,6252,5785,5842,5762,5843,
            5845,5778,5746,5844,5759,5847,6000,6000,6283,6000,
            5875,832,5873,5680,2366,998,6000,5872,6271,4,
            5871,5870,82,6000,2366,459,6000,154,5837,6036,
            6037,636,6261,5929,6288,6289,5017,6286,6287,6000,
            6214,5837,647,74,2601,152,5987,1530,4212,4149,
            4086,4023,3960,3897,3834,6281,156,268,3771,3708,
            4527,4401,4275,155,132,5017,6000,4776,5854,5853,
            5639,5640,5017,6000,1454,5837,650,162,6000,6288,
            6289,1606,6286,6287,4715,18,6210,5927,265,6288,
            6289,319,6286,6287,6000,4957,4897,4837,6000,5688,
            5997,5684,922,5928,5932,5933,197,5926,6273,6280,
            6000,1,5891,5994,6342,5890,47,827,6000,6000,
            5837,5837,6345,6351,4957,4897,4837,5895,5898,5497,
            5453,4957,4897,4837,6187,6188,2526,196,6000,6000,
            457,5851,5852,5253,5195,6000,1302,1378,6000,6000,
            5887,3640,6000,6321,6284,3644,5869,6000,5688,6000,
            5497,5453,6270,834,5698,6000,4653,6000,2601,6355,
            6263,6000,5922,6192,6000,2601,6000,2601,6000,5921,
            6185,164,6254,163,6000,2601,6000,2676,110,5641,
            6255,6000,2601,6000,2601,6000,2601,6299,161,6309,
            6000,6310,6000,2601,160,6000,842,159,5938,6347,
            6063,158,6000,2517,6041,5919,6346,6031,6213,6000,
            2601,153,6000,2519,6062,5940,6353,5972,6000,2521,
            6000,6032,6352,6000,2601,6000,6000,2601,81,5942,
            6257,6000,2601,4776,6000,6291,2751,5253,5195,5253,
            5195,6000,6000,2601,6,6042,5945,5136,5077,2366,
            4715,6000,2601,5136,5077,5655,5136,5077,6000,2601,
            5136,5077,6000,2601,6186,6000,2601,6000,6312,5705,
            5703,6306,6038,6039,6000,6043,6044,6000,6354,6000,
            2601,6000,2601,5976,5676,6314,6000,6308,6000,6000,
            6000,2601,6000,6000,6108,6109,6073,1074,6000,6000,
            1150,1226,6000,6000,6000,6000,6000,6000,6000,1834,
            5702,6061,6000,6000,6212,5659,6112,6113,6000,5661,
            6000,3201,6000,359,6000,6000,6000,6069,232,205,
            204,6000,6000,6211,1910,6209,5973,6000,3351,6000,
            650,6000,647,6000,5878,6208,6223,6336,3576,6222,
            6221,6220,6219,6000,6000,6000,5853,5852,5851,6000,
            6000,6000,6014,6340,6341,6000,6000,6231,6013,6235,
            6000,6000,6000,6012,2062,6011,96,5691,2138,464,
            5879,5556,5643,101,5685,6000,6000,6000,5568,5930,
            6000,6046,838,6000,5881,6007,6005,6000,5931,6360,
            1986,1986,1986,6000,6000,6000,6000,6344,6343,6350,
            6358,6000,6000,133,58,6339,6338,6000,6000,6000,
            6000,51,5949,6000,6000,6000,6000,5951,5701,5630,
            6000,5692,6000,6000,5950,6000,6000,6035,6045,6000,
            6000,6000,6000,6000,6000,5956,5957,315,6000,6000,
            6000,6000,304,2601,6000,5580,6194,2214,2290,655,
            6000,91,6000,6000,6000,6000,6000,6000,64,6292,
            6049,5592,6000,6000,6000,2523,6000,6034,2826,6033,
            6000,6030,5948,6000,6318,6000,6000,6326,6000,6349,
            6348,6000,5953,128,6000,5954,6010,6303,5955,114,
            5671,5673,5699,6000,3644,66,5690,561,5704,6316,
            103,2442,52,5978,6000,6000,5952,6000,5706,65,
            5714,6357,5965,6055,6054,6000,104,2442,6000,6356,
            6000,6000,6000,6050,116,6000,6000,2523,278,276,
            6000,6117,6000,6000,5702,6000,5963,2976,6000,6000,
            6000,752,6000,6000,6000,6000,6000,6000,3051,6000,
            3126,6000,5616,6000,6000,6000,2901,6000,6000,6000,
            6000,6000,6000,6000,6000,6000,6000,6000,6000,6000,
            5983,6000,6000,6000,6000,6000,6000,6000,6000,6129,
            6264,6000,3426,6000,6000,6000,3501,6000,6000,6000,
            6000,6000,6000,6000,6000,6000,6000,3276,6000,6000,
            6000,6000,6000,6000,6000,6000,6000,6000,5985
        };
    };
    public final static char termAction[] = TermAction.termAction;
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            1,70,267,75,68,544,6,3,325,54,
            216,214,54,334,341,565,54,77,411,411,
            411,54,54,565,565,470,470,470,470,470,
            470,44,59,58,58,57,59,59,56,57,
            59,472,563,564,44,470,470,470,470,470,
            44,566,18,179,12,215,217,220,218,226,
            222,229,245,244,59,59,321,321,321,321,
            260,529,527,527,527,527,527,527,527,532,
            535,65,546,468,468,548,551,128,411,6,
            565,346,6,6,6,349,621,565,565,59,
            59,59,59,59,347,347,6,347,6,624,
            6,411,54,54,61,6,411,61,6,411,
            124,77,53,54,18,18,566,566,468,628,
            12,12,12,12,12,12,12,12,12,12,
            12,12,12,12,12,12,12,12,12,12,
            12,12,12,12,12,12,12,12,6,6,
            630,54,630,259,54,259,54,263,6,6,
            324,323,54,633,321,325,353,317,54,636,
            633,54,527,325,325,435,54,549,54,641,
            6,641,6,641,641,641,349,622,641,641,
            347,347,641,128,347,347,346,346,641,128,
            346,346,641,128,347,347,346,435,435,218,
            218,222,222,227,220,220,220,220,244,346,
            346,6,321,72,6,321,327,321,331,715,
            265,644,54,428,325,126,54,59,54,619,
            325,325,646,544,544,546,527,356,59,59,
            648,641,701,413,546,411,641,54,54,411,
            641,54,54,411,177,641,704,699,329,435,
            328,339,6,644,6,546,325,428,544,546,
            320,337,425,706,325,325,325,347,347,413,
            431,128,347,347,128,709,709,128,6,698,
            434,6,329,321,6,6,618,614,325,526,
            347,54,346,338,54,6,448,457,641,641,
            347,347,177,712,714,435,54,6,54,618,
            6,616,428,325,466,345,321,6,351,641,
            448,457,6,54,6,715,468,617,706,410,
            435,715,6,325,6
        };
    };
    public final static char asb[] = Asb.asb;
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static char asr[] = {0,
            78,98,92,101,110,49,48,51,52,54,
            53,22,39,23,24,50,46,42,33,34,
            35,36,37,40,27,28,29,30,31,32,
            26,25,19,38,21,20,41,3,7,43,
            44,45,5,15,18,13,16,17,11,12,
            10,14,9,2,0,47,2,8,3,0,
            2,4,9,0,55,100,0,101,110,92,
            0,87,57,0,99,0,46,50,5,43,
            44,45,7,3,41,2,20,21,38,12,
            18,13,16,19,25,26,27,28,29,30,
            31,32,40,15,17,14,9,33,34,35,
            36,37,42,23,24,22,39,53,54,51,
            52,48,49,11,4,10,0,46,50,5,
            43,44,45,7,3,41,2,20,21,38,
            10,12,18,13,16,19,25,26,27,28,
            29,30,31,32,40,15,17,11,14,9,
            33,34,35,36,37,42,23,24,22,39,
            53,54,51,52,48,49,6,0,42,33,
            34,35,36,37,2,14,10,12,11,17,
            16,13,18,15,40,27,28,29,30,31,
            32,26,25,38,21,20,41,3,7,43,
            44,45,5,126,125,124,122,66,67,59,
            60,9,68,69,70,121,22,39,58,141,
            19,142,75,143,129,130,131,132,133,134,
            135,139,140,91,63,81,84,116,117,89,
            90,119,92,55,4,6,138,120,1,114,
            48,49,61,115,64,0,101,110,48,49,
            51,52,50,27,28,29,30,31,32,33,
            34,35,36,37,38,12,13,14,10,53,
            15,16,17,11,18,54,22,39,3,23,
            24,7,9,19,46,40,41,42,25,2,
            43,44,45,5,26,78,20,21,0,4,
            7,0,63,56,5,0,57,85,87,0,
            96,57,0,46,8,0,57,86,96,0,
            127,128,8,0,57,1,4,0,144,2,
            75,0,65,106,0,63,64,81,84,85,
            61,87,48,49,114,115,116,117,89,90,
            119,120,91,121,59,66,67,122,124,68,
            69,70,129,130,131,132,133,134,135,92,
            1,55,39,4,6,138,139,140,60,58,
            141,19,142,75,143,96,62,9,22,86,
            8,0,8,73,74,19,25,145,2,76,
            77,26,148,0,107,108,0,55,85,0,
            93,94,0,7,137,2,14,10,12,11,
            17,16,13,18,15,136,0,94,8,73,
            74,2,76,77,147,0,93,8,73,74,
            2,76,77,146,0,86,8,57,0,47,
            0,63,64,81,84,61,48,49,114,115,
            116,117,89,90,119,120,91,121,59,66,
            67,122,124,125,126,68,69,70,129,130,
            131,132,133,134,135,92,22,39,4,6,
            72,138,23,24,139,140,9,60,58,141,
            19,142,75,143,3,1,55,0,92,1,
            0,111,78,0,102,63,103,104,105,109,
            112,113,80,56,0,58,0,2,95,0,
            85,57,86,87,8,62,95,96,97,144,
            2,5,3,71,72,63,64,48,49,114,
            115,89,90,119,120,91,121,59,66,67,
            122,124,125,126,68,69,70,129,130,131,
            132,133,134,135,92,55,22,39,4,6,
            138,139,140,9,60,58,141,19,142,75,
            143,23,24,116,117,81,84,61,1,0,
            2,97,0,4,2,5,0,123,0,1,
            89,0,79,65,0,10,80,64,84,0,
            1,6,0,88,0,81,0,64,81,84,
            61,48,49,114,115,116,117,89,119,120,
            91,121,59,66,67,122,124,125,68,69,
            70,129,130,131,132,133,134,135,92,1,
            55,22,39,4,6,138,139,140,9,60,
            58,141,19,142,75,143,62,63,90,0,
            1,138,0,118,0,82,83,0,4,62,
            0,119,0,7,61,0
        };
    };
    public final static char asr[] = Asr.asr;
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static byte nasb[] = {0,
            26,18,45,18,47,18,1,10,18,18,
            18,18,8,79,83,85,58,1,18,18,
            18,8,8,85,85,18,18,18,18,18,
            18,19,18,18,18,18,18,18,8,8,
            18,18,18,18,19,18,18,18,18,18,
            19,18,4,4,35,18,18,18,18,18,
            18,18,18,18,18,18,31,31,64,66,
            53,18,18,18,18,18,18,18,18,18,
            18,29,18,18,18,18,18,1,18,1,
            24,18,1,1,1,87,18,24,24,18,
            18,18,18,18,18,18,1,18,1,18,
            1,18,8,8,8,1,18,8,1,18,
            21,1,18,18,4,4,18,18,18,18,
            2,2,2,2,2,2,2,2,2,2,
            2,2,2,2,2,2,2,2,2,2,
            2,2,2,2,2,2,2,2,1,1,
            18,58,18,18,58,18,58,62,1,1,
            18,68,8,18,18,18,89,18,8,18,
            18,18,18,18,18,43,8,18,18,18,
            1,18,1,18,18,18,72,18,18,18,
            18,18,18,1,18,18,18,18,18,1,
            18,18,18,1,18,18,18,43,43,18,
            18,18,18,18,18,18,18,18,18,18,
            18,1,97,33,1,101,33,95,33,18,
            18,18,18,105,18,18,18,18,8,18,
            18,18,18,18,18,18,18,91,18,18,
            18,18,18,93,18,18,18,8,8,18,
            18,8,8,18,18,18,18,75,18,43,
            81,18,1,18,1,18,99,105,18,18,
            51,33,103,18,18,18,18,18,18,56,
            107,1,18,18,1,18,18,1,1,109,
            111,1,18,18,1,1,18,49,18,18,
            18,8,18,18,8,1,113,115,18,18,
            18,18,18,18,18,43,58,1,58,18,
            1,77,105,18,117,33,123,1,18,18,
            60,70,1,58,1,18,18,119,18,121,
            43,18,1,18,1
        };
    };
    public final static byte nasb[] = Nasb.nasb;
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            74,57,51,25,23,21,27,1,0,105,
            106,107,108,109,110,111,104,0,12,0,
            2,3,0,86,0,98,97,0,101,0,
            94,0,79,0,25,23,1,21,27,51,
            47,0,78,0,103,100,89,0,139,0,
            127,0,64,129,0,149,0,76,0,153,
            0,131,0,135,0,136,0,123,0,152,
            0,1,150,0,143,0,141,0,45,0,
            133,0,146,0,85,0,147,0,121,0,
            156,0,148,0,92,0,84,0,125,0,
            91,0,122,0,82,0,151,0,95,0,
            144,0,155,0,154,0,128,0,142,0,
            81,0,90,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            99,139,106,107,146,109,116,108,120,88,
            95,85,86,87,92,93,94,96,124,14,
            73,104,112,113,135,149,62,63,64,65,
            66,67,68,69,70,71,72,74,105,131,
            132,133,141,142,143,128,130,35,36,59,
            42,43,90,97,100,6,31,122,51,121,
            33,119,10,15,20,52,53,75,76,77,
            101,110,117,118,126,144,145,5,9,11,
            16,17,18,24,26,32,34,38,44,45,
            49,98,102,103,129,134,136,2,3,4,
            7,8,12,13,19,21,22,23,25,27,
            28,29,30,37,39,40,41,46,47,48,
            50,54,55,56,57,58,60,61,78,79,
            80,81,82,83,84,89,91,111,114,115,
            123,125,127,137,138,147,148,150,140,151
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            152,224,225,0,0,0,0,0,0,0,
            0,212,0,0,0,0,0,208,0,0,
            209,210,211,0,213,0,214,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,207,206,201,203,0,0,0,
            205,195,196,197,198,199,202,194,193,192,
            191,190,189,175,0,0,188,168,0,0,
            0,0,174,176,173,178,170,222,0,0,
            171,0,183,184,0,215,0,0,0,172,
            177,180,182,185,187,221,0,0,153,154,
            0,155,156,157,158,159,160,161,162,163,
            164,0,0,0,0,0,0,0,0,0,
            165,166,0,0,167,0,169,0,0,0,
            0,0,0,0,179,181,0,0,0,0,
            0,0,186,0,200,204,0,0,216,217,
            218,219,220,0,0,223,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            1,36,52,144,87,164,164,23,47,68,
            135,28,32,73,97,109,115,119,131,140,
            207,10,43,59,10,43,59,97,154,176,
            176,77,82,123,126,214,198,204
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            8,8,8,151,93,188,170,8,8,8,
            8,8,8,8,107,113,8,8,8,8,
            211,19,19,19,14,14,63,101,158,192,
            180,80,85,113,129,8,201,201
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            43,40,39,72,16,71,71,43,40,39,
            49,42,41,38,16,32,34,33,50,49,
            69,43,40,39,43,40,39,16,72,71,
            71,151,151,30,86,81,70,70
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static char scopeLa[] = {
            6,6,6,119,145,63,63,6,6,6,
            6,6,6,6,144,4,6,6,6,6,
            61,6,6,6,6,6,6,75,4,4,
            4,94,93,4,138,6,89,89
        };
    };
    public final static char scopeLa[] = ScopeLa.scopeLa;
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static byte scopeStateSet[] = {
            13,13,13,46,12,46,46,13,13,13,
            17,13,13,13,12,13,13,13,17,17,
            46,13,13,13,13,13,13,12,46,46,
            46,1,1,13,8,3,46,46
        };
    };
    public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            225,8,6,225,8,16,0,6,0,225,
            8,16,0,6,8,225,6,0,6,8,
            6,0,225,8,2,16,0,225,8,13,
            0,225,8,18,0,225,8,6,225,8,
            12,0,225,8,12,0,225,8,151,12,
            0,246,8,6,225,8,10,0,225,8,
            10,0,6,8,246,6,0,246,8,151,
            10,0,225,8,38,0,305,94,0,94,
            0,304,93,0,93,0,298,75,297,151,
            19,0,145,151,75,0,297,151,19,0,
            75,298,145,151,75,0,144,0,225,3,
            151,0,4,0,225,8,21,0,225,8,
            20,0,225,3,0,225,72,0,138,0,
            225,8,201,0,225,8,296,50,0,225,
            8,50,0,218,118,4,225,3,53,0,
            119,218,0,225,3,53,0,4,118,218,
            119,218,0,293,4,225,3,54,0,63,
            7,226,61,218,0,225,3,54,0,4,
            293,63,7,226,61,218,0,63,61,218,
            0,4,293,63,61,218,0,244,52,0,
            89,218,0,244,51,0,281,279,224,0,
            61,218,0,225,8,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            5699,0,5708,5642,5637,5632,0,5689,5687,454,
            0,5632,5497,5453,5408,5363,3644,3576,4590,4527,
            4464,4401,4338,4275,4212,4149,4086,4023,3960,3897,
            3834,3771,3708,5017,4957,4897,4837,4653,4776,4715,
            5253,5195,5136,5077,5311,3501,3426,3351,3276,3201,
            2442,3126,2366,752,3051,2976,2901,655,2290,2214,
            561,2826,2751,2676,464,2138,2062,1986,1910,2601,
            2526,1834,1758,1682,1606,1530,1454,1378,1302,1226,
            1150,1074,998,922,846,361,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,247,248,98,253,78,238,239,99,56,
            204,206,46,201,50,177,7,3,20,21,
            38,19,25,172,171,32,31,30,29,28,
            27,40,15,18,13,16,17,11,12,10,
            14,151,2,9,173,37,36,35,34,33,
            175,194,24,23,207,205,203,209,208,211,
            210,212,223,217,53,54,52,51,48,49,
            224,225,261,260,259,258,257,256,255,110,
            101,5,2,124,126,151,2,8,296,8,
            235,225,8,8,8,151,151,235,235,10,
            12,16,13,18,3,3,8,3,8,3,
            8,2,3,3,3,8,151,3,8,151,
            3,3,71,71,24,23,194,194,125,122,
            60,59,67,66,39,22,121,70,69,68,
            9,140,139,135,134,133,132,131,130,129,
            143,75,142,19,141,58,120,91,3,3,
            244,7,244,285,7,286,7,279,114,1,
            78,111,80,113,112,109,105,104,103,63,
            102,56,251,100,58,57,57,2,71,225,
            8,225,72,225,225,225,297,2,225,225,
            5,2,225,8,151,151,9,151,225,8,
            9,151,225,8,153,152,225,57,123,208,
            208,210,210,211,209,209,209,209,217,225,
            225,89,1,226,89,1,226,1,226,281,
            115,64,56,5,273,63,56,151,7,271,
            151,84,64,80,10,2,5,228,136,137,
            151,225,225,75,151,6,225,1,1,6,
            225,1,1,6,246,225,4,4,229,57,
            229,229,61,64,88,2,85,5,10,2,
            3,151,1,81,56,56,58,3,3,298,
            58,8,151,151,8,151,151,8,118,293,
            90,87,283,85,96,88,243,218,58,275,
            276,7,277,229,145,8,94,93,225,225,
            62,62,246,218,63,294,7,87,7,243,
            1,289,5,1,4,151,1,96,151,225,
            305,304,119,7,61,227,226,291,81,278,
            57,226,61,84,61
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "$empty",
            "xquery",
            "version",
            "encoding",
            "module",
            "namespace",
            "declare",
            "boundary_space",
            "strip",
            "default",
            "function",
            "option",
            "ordering",
            "ordered",
            "order",
            "empty",
            "greatest",
            "least",
            "copy_namespaces",
            "preserve",
            "no_preserve",
            "inherit",
            "no_inherit",
            "collation",
            "base_uri",
            "at",
            "import",
            "schema",
            "variable",
            "construction",
            "as",
            "external",
            "return",
            "in",
            "for",
            "let",
            "where",
            "by",
            "stable",
            "ascending",
            "descending",
            "some",
            "every",
            "satisfies",
            "case",
            "then",
            "else",
            "or",
            "and",
            "to",
            "union",
            "intersect",
            "except",
            "instance",
            "of",
            "treat",
            "castable",
            "cast",
            "validate",
            "lax",
            "strict",
            "child",
            "descendant",
            "self",
            "descendant_or_self",
            "following_sibling",
            "following",
            "parent",
            "ancestor",
            "preceding_sibling",
            "preceding",
            "ancestor_or_self",
            "unordered",
            "document",
            "div",
            "idiv",
            "mod",
            "eq",
            "ne",
            "lt",
            "le",
            "gt",
            "ge",
            "is",
            "attribute",
            "comment",
            "document_node",
            "element",
            "empty_sequence",
            "if",
            "item",
            "node",
            "processing_instruction",
            "schema_attribute",
            "schema_element",
            "text",
            "typeswitch",
            "EOF_TOKEN",
            "COMMA",
            "SEMICOLON",
            "COLON",
            "DOUBLEQUOTE",
            "SINGLEQUOTE",
            "PLUS",
            "MINUS",
            "LEFTPAREN",
            "RIGHTPAREN",
            "LEFTBRACE",
            "RIGHTBRACE",
            "LEFTBRACKET",
            "RIGHTBRACKET",
            "SLASH",
            "DoubleSlash",
            "NodeCompLeft",
            "NodeCompRight",
            "DOLLAR",
            "DoubleLEFTBRACE",
            "DoubleRIGHTBRACE",
            "QUESTION",
            "TIMES",
            "ORBar",
            "EQUAL",
            "NOTEQUAL",
            "LESS",
            "LESSEQUAL",
            "GREATER",
            "GREATEREQUAL",
            "PragmaST",
            "PragmaET",
            "DoubleCOLON",
            "ATSIGN",
            "DOT",
            "DOTDOT",
            "ASSIGN",
            "PIST",
            "PIET",
            "STEndMark",
            "ETStartMark",
            "NCName",
            "Comment",
            "IntegerLiteral",
            "DecimalLiteral",
            "DoubleLiteral",
            "PredefinedEntityRef",
            "CharRef",
            "StringLiteral",
            "EscapeQuot",
            "EscapeApos",
            "DirCommentConstructor",
            "CDataSection",
            "ERROR_TOKEN",
            "QName",
            "LibraryModule",
            "MainModule",
            "QueryBody",
            "ModuleDecl",
            "PrologEntry",
            "DefaultNamespaceDecl",
            "Setter",
            "NamespaceDecl",
            "Import",
            "VarDecl",
            "FunctionDecl",
            "OptionDecl",
            "PreserveMode",
            "InheritMode",
            "CommaSeparatedURILiteral",
            "ExprSingle",
            "ParamList",
            "SequenceType",
            "EnclosedExpr",
            "Param",
            "Expr",
            "OrExpr",
            "ForOrLetClause",
            "ForOrLetClauseList",
            "ForClauseVarBinding",
            "VarName",
            "ForClauseVarBindingList",
            "LetClauseVarBinding",
            "LetClauseVarBindingList",
            "OrderSpecList",
            "OrderSpec",
            "QuantifiedExprVarBinding",
            "QuantifiedExprVarBindingList",
            "CaseClauseList",
            "CaseClause",
            "AndExpr",
            "ComparisonExpr",
            "RangeExpr",
            "AdditiveExpr",
            "MultiplicativeExpr",
            "UnionExpr",
            "IntersectExceptExpr",
            "InstanceofExpr",
            "TreatExpr",
            "CastableExpr",
            "CastExpr",
            "UnaryExpr",
            "SingleType",
            "ValueExpr",
            "PlusOrMinusList",
            "PlusOrMinus",
            "ValidationMode",
            "PragmaList",
            "Pragma",
            "RelativePathExpr",
            "StepExpr",
            "ReverseStep",
            "ForwardStep",
            "ForwardAxis",
            "NodeTest",
            "ReverseAxis",
            "PrimaryExpr",
            "Predicate",
            "DirElemContent",
            "DirAttribute",
            "DirAttributeValue",
            "DirAttributeValueQuot",
            "DirAttributeValueApos",
            "ContentExpr",
            "ItemType",
            "OccurrenceIndicator",
            "ElementTest",
            "SchemaElementTest"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    /**
     * assert(! goto_default);
     */
    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    /**
     * assert(! shift_default);
     */
    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
